Building Decision Trees

The first "Decision Tree" Object in an application should be created by adding a new Tree-enabled Object in the Knowledge Explorer. Subsequent Trees can be created in the same way or by adding a new Tree Object inside another.

You can also add a Decision Tree to any existing Object which has been based on a user defined Base Class that has been set-up to allow the hasTree Object Control Property to be set to true. When the hasTree property is changed (False to True) the Object's icon will change to denote that the object now uses a Decision Tree to determine its value. This task is best performed using the 'Convert to Decision Tree' Wizard of an Object.

The Decision Tree tab page provides a comprehensive tree editor toolkit. On this tab page you can build Decision trees by direct editing.

Note that you can also build a decision Tree using a process called 'Rule Induction'; you generate a decision tree from a table of Cases on the Cases tab of the same Object. You could also use a combination of both, by first generating a Decision Tree from Cases

When you open up a new Decision tree editor tab page, XpertRule will show an empty decision tree with a single box at the top:

This represents a single outcome point, often called a leaf 'Node'. As you add more branches to the tree you will create more (Empty) ending nodes by default. You can then change each of these into the outcome values that you want the tree branching to arrive at as its conclusion.

To create a tree by manual editing you can drag and drop Objects from the Knowledge Explorer window onto the Empty, or to any other editing branches as you build up the tree; for example, a List type attribute, a Numeric attribute or a Procedure object. Properties can also be used in tree branches by dragging and dropping them from the Knowledge Explorer. The property will appear on the tree using the syntax <objectName.propertyName>, e.g. Hotel.priceOfRoom.

Adding a new Object

Editing Tree Branches

Add Label

Induce Tree

Zoom in/out

Font Properties

Embedding Scripting Commands